iT邦幫忙

2

[Machine Learning A-Z [2026] ] 學習筆記 Day7 Multiple Linear Regression 實作

  • 分享至 

  • xImage
  •  

實作比背後的數學觀念簡單太多惹。

老樣子,我們先打開資料看一下大概長怎樣。
資料
目標是要用研發支出、行政支出、行銷支出以及所在城市位子來預測利潤。

匯入Library
用pandas, numpy, 跟matplotlib中的plt(不過這個我覺得不一定要、只是視覺化數據的工具,實際上資料匯入用前兩者就夠了),而因為要做regression,其實也可以先匯入sklearn對應的模組拉
匯入資料
前面有提過、就用 pd.csv_read(資料)
然後用iloc把自變數跟應變數存成兩個陣列(X,Y)

編譯類別資料
針對state做處理,而前一章有討論過,為了三個類別變數造成的避免多重共線性,類別數據要用OneHotEncoder(drop='first')處理,而其他資料逐步處理的方式在data preprocessig那張有寫過囉

資料分組
把資料分為X_train, Y_train, X_test, Y_test

建立模型
ㄟ最重要的部分來了
使用sklearn.linear_model中的LinearRegression,接著建立模型
regressor = LinearRegression()

然後放入變數並且讓函式庫根據模型找截距跟各系數的coefficient
regressor.fit(X_train)

預測值
前述的regressor.fit基本上已經算好需要的參數了,接著就是見證奇蹟的時刻,放入X_test做預測
y_pred = regressor.predict(X_test)

比較預測值跟實際值的差異
講師的方式是透過np.concatenate 把兩個變數擺在一起比較看差值,
我個人覺得可以做相減,就知道差不多少惹,這個數值用肉眼看是差蠻多的耶XD
[ 267.18 11677.12 13674.21 5822.73 12512.91 -11152.93 13377.37
-1308.17 -3617.19 -1733.13]

用backward elimination選擇參數
backward elimination 用的是statsmodels.api,在開始運算之前要先做一些資料前處理,要加一個1到陣列前面,
使其變成 [1,x1,x2,x3,x4,x5]的格式,這邊可以使用append。
接著就是逐一刪減參數。先設定模型: sm.OLS(endog = y, exog = X_opt).fit()
接著看summary,regressor_OLS.summary(),
會獲得這樣一張表,基本上就是選P值最大的剔除掉。X2最大所以拿掉2
https://ithelp.ithome.com.tw/upload/images/20260811/20183477JIW8RkOJQc.png
接著再重新宣告一次陣列,X_opt = X[:, [0, 1, 3, 4, 5]]
再跑一次fit跟看summary。直到P值接近一開始設定的0.1,留下x3跟x5 (研發跟行銷支出)(通常是設0.05,不過這樣來看就幾乎沒有參數留下了),我用X_test,然後只用研發跟行銷這兩個參數去跑sm.OLS,做出來差距長這樣XD
結論是好像跟原本算出來的結果挺相似的,
[ -157.37 -9620.53 -11110.04 -3684.94 -9645.01 9970.3 -12597.74
830.99 4638.13 4939.68]
我們其實可以忽略掉城市差異跟行政支出,跟利潤最相關的就是 - 研發跟行銷支出,聽君一席話如聽一席話,我花了兩小時研究得出了我不需要跑模式也知道的答案XD
但是假設今天是要跟長官報告結果就不太同了,我們可以告訴他們研發跟行銷的支出係數為0.79跟0.02,
https://ithelp.ithome.com.tw/upload/images/20260811/20183477z12KmdRrXO.png

不過我其實還是沒有很懂、也跟chatgpt討論了一下,因為當研發跟行銷都不支出也會有4萬多塊的利潤耶?! 有點不確定這個到底要怎麼理解好。但也許回頭來看、我們就假設不會有行銷跟研發同時為0的狀況,或者是說這個模型不提供一個新創公司到底要多少錢才撐得起來,而是告訴我們,固定行銷支出費用下,多增加研發費用可以增加比較多的利潤。


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言